package com.qyc.handler.exception;

import com.qyc.exception.SystemException;
import com.qyc.utils.ResponseResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @className: GlobalExceptionHandler
 * @Description: 全局异常捕获
 * @author: qinyc
 * @date: 2023/6/20 22:02
 * @version: v1.0
 */

@RestControllerAdvice
public class GlobalExceptionHandler {
    //当web层抛出异常类型为Exception类型
    @ExceptionHandler(Exception.class)
    public ResponseResult handleException(Exception exception){
        //控制台打印异常信息
        exception.printStackTrace();
        //查看异常信息是否属于系统自定义异常
        if(exception instanceof SystemException){
            //如果是自定义异常信息，返回自定义异常信息
            return ResponseResult.error(((SystemException) exception).getCode(),((SystemException) exception).getMsg());
        }
        //如果不是自定义异常，返回统一异常信息
        return  ResponseResult.error();
    }

}
